Virtual machines, which are an abstraction of physical computing resources, may communicate with other virtual machines using a network. The network may be a virtual network, which is an abstraction, or virtualization, of a physical network. Virtual networks may operate as layer two in the OSI model between and among virtual machines. Unlike physical networks, virtual networks are not constrained by physical links and topology. One such virtual network is a Virtual Extensible LAN (VXLAN), as described in the white paper titled “Scalable Cloud Networking with Cisco Nexus 1000V Series Switches and VXLAN”, which is filed herewith and is incorporated by reference in its entirety.
Some physical network interface cards (NICs) are capable of performing operations on network data, such as checksum offload (CKO), TCP segmentation offload (TSO), and large receive offload (LRO). Computer systems with such offload-capable physical NICs are able to offload these operations from processors, which may decrease the load on the computer system processors and increase the performance of the computer system networking Virtual networks and other overlay networks may use packet encapsulation to place inner packets inside outer packets that are sent via physical networks. Physical NICs may be unaware of encapsulated packets and may not be able to process both the outer and inner packets thereof. As a result, additional processing by the computer system may occur, since packet processing cannot be offloaded to the physical NIC for encapsulated packets. Accordingly, there is a need for encapsulation-aware NICs that can understand and process encapsulated packets. Moreover, there is hence a need for a virtual machine host to be capable of offloading encapsulated packet processing to an encapsulation-aware NIC.